package com.example.migrator.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

@Mapper
public interface OracleMapper {

    /**
     * 批量查询Oracle数据库中的数据
     * @param params 查询参数
     * @return 数据列表
     */
    List<Map<String, Object>> selectDataByBatch(Map<String, Object> params);

    /**
     * 获取表的元数据信息
     * @param params 查询参数
     * @return 元数据信息列表
     */
    List<String> getTableMetadata(Map<String, Object> params);

    /**
     * 获取表的记录总数
     * @param params 查询参数
     * @return 记录总数
     */
    long getTableCount(Map<String, Object> params);

    /**
     * 查询指定表的所有列名
     * @param tableName 表名
     * @return 列名列表
     */
    List<String> getTableColumns(@Param("tableName") String tableName);
}